
namespace SIP.PN.Modelo.Entidades
{
    public abstract class ProyectoTareaEstado
    {
        private string codigo;
        private string nombre;

        public virtual string Codigo
        {
            get { return codigo; }
            set { codigo = value; }
        }

        public virtual string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        #region Metodos

        public virtual bool PuedeEliminar()
        {
            return false;
        }

        public virtual bool PuedeEvaluar()
        {
            return false;
        }

        public virtual bool PuedeEditar()
        {
            return false;
        }

        public virtual bool PuedeEditarRequisito()
        {
            return false;
        }

        public virtual bool PuedeEditarAsignacion()
        {
            return false;
        }

        public virtual bool EsFinalizada()
        {
            return false;
        }

        public virtual bool EsPendiente()
        {
            return false;
        }

        public virtual bool EsIniciada()
        {
            return false;
        }

        public virtual bool EsCancelada()
        {
            return false;
        }

        #endregion

        #region Metodos Sobreescritos

        public override bool Equals(object obj)
        {
            ProyectoTareaEstado otro = obj as ProyectoTareaEstado;
            if (otro == null) return false;
            return Codigo.Equals(otro.Codigo);
        }

        public override int GetHashCode()
        {
            return string.Format("{0}-{1}", GetType(), ToString()).GetHashCode();
        }

        public override string ToString()
        {
            return Codigo;
        }

        #endregion
    }
}
